package com.shark.uh.mapper;

import com.shark.uh.model.entity.Permissions;
import com.shark.uh.model.entity.Roles;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Entity com.BsetC.AccountPlatform.entity.Permissions
 */
public interface PermissionsMapper extends BaseMapper<Permissions> {


    /**
     * 根据权限id列表批量删除权限记录。
     * 已过时,请使用 BaseMapper.deleteBatchIds。
     * @param permissionIds
     */
    @Deprecated
    void deletePermissions(List<Long> permissionIds);


    /**
     * 条件查询
     * @param permissionName 权限名称
     * @param userId         创建者ID
     * @param offset         偏移量
     * @param limit          条数限制
     * @return
     */
    List<Permissions> selectConditional(@Param("permissionName") String permissionName,
                                        @Param("createdBy") Long userId,
                                        @Param("offset") int offset,
                                        @Param("limit")  int limit);


    /**
     * 向role_permissions关系表批量插入记录
     * @param permissionId
     * @param roleIds
     */
    void insertRelationBatch(@Param("permissionId") Long permissionId,
                             @Param("roleIds") List<Long> roleIds);


    /**
     * 从role_permissions关系表批量删除记录
     * @param permissionId
     * @param roleIds
     */
    void deleteRelationBatch(@Param("permissionId") Long permissionId,
                             @Param("roleIds") List<Long> roleIds);


    /**
     * 查询拥有某权限的角色列表
     * @param  permissionId     权限ID
     * @return List<Roles>      角色列表
     */
    List<Roles> selectRolesByPermissionId(Long permissionId);
}




